#include "mikmod.h"

DRIVER *md_driver;
UWORD md_device;
UWORD md_mixfreq;
UWORD md_dmabufsize;
UWORD md_mode;
UBYTE md_numchn;
UBYTE md_bpm;
void (*md_player)(void);

AUDTMP mp_audio[32];		/* max eight channels */
UBYTE  mp_bpm;			/* beats-per-minute speed */
UWORD  mp_patpos;		/* current row number (0-63) */
SWORD  mp_sngpos;		/* current song position */
UWORD  mp_sngspd;		/* current songspeed */

BOOL  mp_loop;
BOOL  mp_panning;
BOOL  mp_extspd;
UBYTE mp_volume;

LOADER load_uni;
LOADER load_mod;
LOADER load_m15;
LOADER load_mtm;
LOADER load_s3m;
LOADER load_stm;
LOADER load_ult;
LOADER load_xm;

DRIVER drv_gus;		/* gravis ultrasound driver */
DRIVER drv_sb;		/* soundblaster DSP driver */
DRIVER drv_nos;		/* nosound driver */
DRIVER drv_raw;		/* file output driver */
DRIVER drv_w95;		/* win95 driver */
DRIVER drv_awe;		/* experimental SB-AWE driver */
DRIVER drv_vox;		/* linux voxware driver */

char *ERROR_ALLOC_STRUCT;
char *ERROR_LOADING_PATTERN;
char *ERROR_LOADING_TRACK;
char *ERROR_LOADING_HEADER;
char *ERROR_NOT_A_MODULE;
char *ERROR_LOADING_SAMPLEINFO;
char *ERROR_OUT_OF_HANDLES;
char *ERROR_SAMPLE_TOO_BIG;
char *myerr;

SAMPLE *MW_LoadWavFP(FILE *fp) { return NULL; }
SAMPLE *MW_LoadWavFN(char *filename) { return NULL; }
void MW_FreeWav(SAMPLE *si) {}

void 	ML_InfoLoader(void) {}
void 	ML_RegisterLoader(LOADER *ldr) {}
UNIMOD	*ML_LoadFP(FILE *fp) { return NULL; }
UNIMOD	*ML_LoadFN(char *filename) { return NULL; }
void 	ML_Free(UNIMOD *mf) {}

int	 MP_Ready(void) { return 0; }
void MP_NextPosition(void) {}
void MP_PrevPosition(void) {}
void MP_SetPosition(UWORD pos) {}
void MP_HandleTick(void) {}
void MP_Init(UNIMOD *m) {}

void MD_InfoDriver(void) {}
void MD_RegisterDriver(DRIVER *drv) {}
void MD_RegisterPlayer(void (*plr)(void)) {}
SWORD MD_SampleLoad(FILE *fp,ULONG size,ULONG reppos,ULONG repend,UWORD flags) { return 0; }
void MD_SampleUnLoad(SWORD handle) {}
BOOL MD_Init(void) { return 1; }
void MD_Exit(void) {}
void MD_PlayStart(void) {}
void MD_PlayStop(void) {}
void MD_SetBPM(UBYTE bpm) {}
void MD_Update(void) {}
void MD_VoiceSetVolume(UBYTE voice,UBYTE ivol) {}
void MD_VoiceSetFrequency(UBYTE voice,ULONG frq) {}
void MD_VoiceSetPanning(UBYTE voice,ULONG pan) {}
void MD_VoicePlay(UBYTE voice,SWORD handle,ULONG start,ULONG size,ULONG reppos,ULONG repend,UWORD flags) {}
void SL_Init(FILE *fp,UWORD infmt,UWORD outfmt) {}
void SL_Load(void *buffer,ULONG length) {}
